﻿using System.Windows;
using MAnt3.Properties;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using MAntLibrary;

namespace MAnt3
{
    /// <summary>
    /// Interaction logic for InformaciWindow.xaml
    /// </summary>
    public partial class InformaciWindow : Window
    {
        #region TRIDNI PROMENNE
        private readonly MainWindow mainWindow;
        private readonly MoznostiWindow moznostiWindow;
        private Konfigurace konfigurace;
        private List<InfoZaznam> SEznamINformaci;
        private List<InfoZaznam> SEznamCHyb;
        #endregion

        #region KONSTRUKTORY
        // defaultni konstruktor
        public InformaciWindow()
        {
            InitializeComponent();
        }

        // muj konstruktor
        public InformaciWindow(MainWindow mainWindow, MoznostiWindow moznostiWindow, List<InfoZaznam> sz, List<InfoZaznam> sch, Konfigurace kon)
            : this()
        {
            this.mainWindow = mainWindow;
            this.moznostiWindow = moznostiWindow;
            konfigurace = kon;
            SEznamINformaci = sz;
            SEznamCHyb = sch;
        }
        #endregion

        #region UDALOSTI
        //
        // ukoncim aplikaci - zavru vsechny okna
        //
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            // ulozim nastaveni
            konfigurace.ulozKonfiguraci();

            // pozaviram vsechny okna
            this.Close();
            moznostiWindow.Close();
            mainWindow.Close();            
        }

        //
        // restart cele aplikace
        //
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            // ulozim nastaveni
            konfigurace.ulozKonfiguraci();

            // pozaviram vsechny okna
            this.Hide();
            moznostiWindow.Hide();
            
            // metoda musi vynulovat vsechno co ma nastavenou nejakou hodnotu z predesleho chodu
            mainWindow.ResetovaniPromennych();
        }

        private void LBinfo_Loaded(object sender, RoutedEventArgs e)
        {
            // pridam informace
            LBinfo.DataContext = SEznamINformaci;
        }

        private void LBchyby_Loaded(object sender, RoutedEventArgs e)
        {
            LBchyby.DataContext = SEznamCHyb;
        }
        #endregion 
    }
}
